home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Skunkware 98
/
Skunkware 98.iso
/
html
/
util
/
genskunk.03
< prev
next >
Wrap
Text File
|
1998-03-23
|
10KB
|
409 lines
#! /usr/local/bin/perl -w
$0 =~ s,.*/,,;
$version="v1.1";
$program=$0;
$debug=0;
$mailto='mailto:skunkware@sco.com';
$baseref='http://www.sco.com/skunkware';
$homeref='http://www.sco.com/skunkware';
$isweb=0;
sub usage {
warn "@_\n" if @_;
$! = 0;
die <<EOF;
Usage: $0 -w | -c file name prev next
-w - Generate pages for the Web
-c - Generate pages for the CD-ROM
file - name of the template (.tmpl) file
name - the name of the package
prev - the name of the previous link
next - the name of the next link
Use the word NONE for the prev and next parameters if the page doesnt
have a previous or next page in the document chain.
EOF
}
if (@ARGV<1 || $#ARGV != 4) {
usage();
}
$mode="0";
if($ARGV[0] eq "-w" || $ARGV[0] eq "web") {
$mode="SKUNK_WEB";
$isweb=1;
}
elsif($ARGV[0] eq "-c" || $ARGV[0] eq "cd") {
$mode="SKUNK_CD";
$baseref='..';
}
if ($mode eq "0") {
usage();
}
$now=`date '+%A %b %d, %Y at %T %Z'`; chop $now;
$basefile=$ARGV[1];
$shortname=$ARGV[2];
$previous=$ARGV[3];
$next=$ARGV[4];
$realbase=`basename $basefile`; chop $realbase;
#if ($isweb) {
# if (not -d $shortname) {
# mkdir($shortname,0755) or die "$program error: Could not create directory $shortname\n";
# }
# $output="$shortname/index.html";
#} else {
$output="${realbase}.html";
#}
$template="${basefile}.tmpl";
$templflt="/lib/cpp -I. -I.. -I../src -D$mode $template |";
-f $template or die "$program error: $template not found\n";
if ($debug) {
print "basefile : $basefile\n";
print "now : $now\n";
print "shortname: $shortname\n";
print "previous : $previous\n";
print "next : $next\n";
print "output : $output\n";
print "realbase : $realbase\n";
print "template : $template\n";
}
if ($previous eq "none" or $previous eq "NONE")
{
$prevref="";
} else {
if ($isweb) {
$prevref="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"\/skunkware\/$previous/index.html\">";
} else {
$prevref="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$previous.html\">";
}
}
if ($next eq "none" or $next eq "NONE") {
$nextref="";
} else {
if ($isweb) {
$nextref="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"\/skunkware\/$next/index.html\">";
} else {
$nextref="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$next.html\">";
}
}
if ($debug) {
print "nextref=$nextref\n";
print "prevref=$prevref\n";
}
open (TEMPLATE,$templflt) or die "$program error: cannot open $template for reading\n";
open (OUTPUT,">$output") or die "$program error: cannot open $output for output\n";
sub skunkheader{
my($foo) = @_;
my($title,$plink,$nlink) = split(/;/,$foo);
my($oplink,$onlink);
if (not $plink) {
$oplink = $prevref;
} else {
if ($isweb) {
$oplink="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$plink/index.html\">";
} else {
$oplink="<AREA SHAPE=\"rect\" COORDS=\"112,2,236,26\" HREF=\"$plink.html\">";
}
}
if (not $nlink) {
$onlink = $nextref;
} else {
if ($isweb) {
$onlink="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$nlink/index.html\">";
} else {
$onlink="<AREA SHAPE=\"rect\" COORDS=\"252,1,331,26\" HREF=\"$nlink.html\">";
}
}
if ($debug) {
print "skunkheader: title='$title'\n";
print " oplink='$oplink'\n";
print " onlink='$onlink'\n";
}
if (not $title) {
warn "$program: No TITLE specified in SKUNKHEADER\n";
}
if (not $isweb) {
#
# This is the header information for the Skunkware CD-ROM
#
print OUTPUT <<EOF;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<!-- DO NOT EDIT -->
<!-- Automatically generated from $template by $program $version -->
<!-- DO NOT EDIT -->
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<LINK REV="made" HREF="$mailto">
</HEAD>
<BODY BGCOLOR="#ffffff">
<MAP NAME="skunknav">
<AREA SHAPE="rect" COORDS="347,1,460,26" HREF="$homeref/$shortname">
$oplink
$onlink
<AREA SHAPE="rect" COORDS="3,1,93,26" HREF="$baseref/index.html">
</MAP>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%" BORDER="0">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD ROWSPAN="2" WIDTH="20%">
<A HREF="http://www.sco.com/skunkware">
<IMG BORDER=0 SRC="gif/sk97s.gif" HEIGHT="104" WIDTH="108" ALIGN="BOTTOM">
</A>
</TD>
<TD VALIGN="BOTTOM" WIDTH="79%">
<IMG ISMAP USEMAP="#skunknav" SRC="gif/skunknav.gif" HEIGHT="26"
WIDTH="466" ALIGN="BOTTOM" BORDER="0">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<IMG SRC="gif/${shortname}.gif" ALT="$title" HEIGHT="26" ALIGN="BOTTOM">
</TD>
</TR>
</TABLE>
<H2 ALIGN="CENTER">Last Updated: $now</H2>
EOF
} else {
#
# This is the header information for the Skunkware On-line pages
#
print OUTPUT <<EOF;
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<!-- DO NOT EDIT -->
<!-- Automatically generated from $template by $program $version -->
<!-- DO NOT EDIT -->
<HTML>
<HEAD>
<TITLE>$title</TITLE>
<LINK REV="made" HREF="$mailto">
</HEAD>
<BODY BGCOLOR="#ffffff">
<MAP NAME="skunknav">
<AREA SHAPE="rect" COORDS="347,1,460,26" HREF="$homeref/$shortname">
$oplink
$onlink
<AREA SHAPE="rect" COORDS="3,1,93,26" HREF="/skunkware/index.html">
</MAP>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%" BORDER="0">
<TR ALIGN="LEFT" VALIGN="TOP">
<TD ROWSPAN="2" WIDTH="20%">
<A HREF="http://www.sco.com/skunkware">
<IMG BORDER=0 SRC="gif/sk97s.gif" HEIGHT="104" WIDTH="108" ALIGN="BOTTOM">
</A>
</TD>
<TD VALIGN="BOTTOM" WIDTH="79%">
<IMG ISMAP USEMAP="#skunknav" SRC="gif/skunknav.gif" HEIGHT="26"
WIDTH="466" ALIGN="BOTTOM" BORDER="0">
</TD>
</TR>
<TR>
<TD VALIGN="TOP">
<IMG SRC="gif/${shortname}.gif" ALT="$title" HEIGHT="26" ALIGN="BOTTOM">
</TD>
</TR>
</TABLE>
<H2 ALIGN="CENTER">Last Updated: $now</H2>
EOF
}
}
sub skunkfooter {
my($foo) = @_;
if ($isweb) {
#
# Print out the footer of a page for the On-line version of the page.
# This should conform to the corporate guidelines.
#
print OUTPUT <<EOF;
<P><HR ALIGN=LEFT>
<P> <FONT SIZE=-2>
© Copyright 1997 The Santa Cruz Operation, Inc. All rights reserved.
</FONT>
</BODY>
</HTML>
EOF
} else {
#
# Print out the fotter for the CD-ROM version.
#
print OUTPUT <<EOF;
<P><HR ALIGN=LEFT>
<P> <FONT SIZE=-2>
© Copyright 1997 The Santa Cruz Operation, Inc. All rights reserved.
</FONT>
</BODY>
</HTML>
EOF
}
}
sub start_packagelist {
my($foo) = @_;
print OUTPUT <<EOF;
<H2 ALIGN="CENTER">Package List</H2>
<CENTER><TABLE WIDTH="100%" BORDER="1" CELLSPACING="0" CELLPADDING="2">
<TR>
<TH WIDTH="11%" HEIGHT="23">Name</TH>
<TH WIDTH="62%">Description</TH>
<TH WIDTH="9%">Version</TH>
<TH WIDTH="7%">OSR5</TH>
<TH WIDTH="11%">UnixWare</TH>
</TR>
EOF
}
sub end_packagelist {
my($foo) = @_;
print OUTPUT <<EOF;
</TABLE></CENTER>
<H4><HR ALIGN="LEFT"></H4>
EOF
}
sub startpack {
my($linkref,$desc) = @_;
print OUTPUT <<EOF;
<H4><A NAME="$linkref"></A>$desc</H4>
<BLOCKQUOTE>
EOF
}
sub endpack {
my($foo) = @_;
print OUTPUT <<EOF;
</BLOCKQUOTE>
<P> </P>
EOF
}
sub source {
my($site) = @_;
print OUTPUT <<EOF;
<P>
<A HREF="$site">
<IMG SRC="gif/origsrc.gif" ALT="Original source code" HSPACE="20" BORDER="0"
HEIGHT="32" WIDTH="160" ALIGN="CENTER"></A>
<A HREF="$site">$site</A></P>
EOF
}
sub homepage {
my($page) = @_;
print OUTPUT <<EOF;
<P>
<A HREF="$page">
<IMG SRC="gif/homepage.gif" ALT="Package Home page" HSPACE="20" BORDER="0"
HEIGHT="32" WIDTH="160" ALIGN="CENTER"></A>
<A HREF="$page">$page</A></P>
EOF
}
sub osr5dist {
my($location) = @_;
my($volfile);
if ($location =~ /osr5\//) {
if (not $location =~ /\/$/) {
$location = "$location/";
}
$volfile="${location}VOLS.tar";
print OUTPUT <<EOF;
<P><A HREF="$baseref/$volfile">
<IMG SRC="gif/osr5dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
ALIGN="CENTER" ALT="OpenServer Distribution"></A>
<A HREF="$baseref/$location">$location</A></P>
EOF
} else {
print OUTPUT <<EOF;
<P><A HREF="$location">
<IMG SRC="gif/osr5dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
ALIGN="CENTER" ALT="OpenServer Distribution">
$location
</A></P>
EOF
}
}
sub uw2dist {
my($location) = @_;
my($volfile);
if ($location =~ /uw2\//) {
if (not $location =~ /\/$/) {
$location = "$location/";
}
print OUTPUT <<EOF;
<P><A HREF="$baseref/$location">
<IMG SRC="gif/uw2dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
ALIGN="CENTER" ALT="UnixWare Distribution"></A>
<A HREF="$baseref/$location">$location</A></P>
EOF
} else {
print OUTPUT <<EOF;
<P><A HREF="$location">
<IMG SRC="gif/uw2dist.gif" HSPACE="20" BORDER="0" HEIGHT="32" WIDTH="160"
ALIGN="CENTER" ALT="UnixWare Distribution">
$location
</A></P>
EOF
}
}
sub packlist{
my($foo) = @_;
my($linkref,$desc,$packver,$isosr5,$isuw2) = split(/;/, $foo);
print OUTPUT <<EOF;
<TR>
<TD><A HREF="#$linkref">$linkref</A></TD>
<TD>$desc</TD>
<TD>$packver</TD>
<TD ALIGN="CENTER">$isosr5</TD>
<TD ALIGN="CENTER">$isuw2</TD>
</TR>
EOF
}
LINE: while (defined($line = <TEMPLATE>)) {
next LINE if $line =~ /^# [0-9]* \"/;
chop $line;
if ($line =~ s/@@\@SKUNKHEADER\((.*)\)//) { skunkheader($1);}
elsif ($line =~ s/@@\@SKUNKFOOTER//) { skunkfooter();}
elsif ($line =~ s/@@\@START_PACKAGELIST//) {start_packagelist();}
elsif ($line =~ s/@@\@END_PACKAGELIST//) {end_packagelist();}
elsif ($line =~ s/@@\@STARTPACK\((.*);(.*)\)//) {startpack($1,$2);}
elsif ($line =~ s/@@\@ENDPACK//) {endpack();}
elsif ($line =~ s/@@\@OSR5DIST\((.*)\)//) {osr5dist($1);}
elsif ($line =~ s/@@\@UW2DIST\((.*)\)//) {uw2dist($1);}
elsif ($line =~ s/@@\@SOURCE\((.*)\)//) {source($1);}
elsif ($line =~ s/@@\@HOMEPAGE\((.*)\)//) {homepage($1);}
elsif ($line =~ s/@@\@PACKLIST\((.*)\)//) {packlist($1);}
else {print OUTPUT "$line\n";}
}